//app.js
import GoEasy from './goeasy-1.0.3';

App({
  onLaunch: function () {

    if (!wx.cloud) {
      console.error('请使用 2.2.3 或以上的基础库以使用云能力')
    } else {
      wx.cloud.init({
        // env 参数说明：
        //   env 参数决定接下来小程序发起的云开发调用（wx.cloud.xxx）会默认请求到哪个云环境的资源
        //   此处请填入环境 ID, 环境 ID 可打开云控制台查看
        //   如不填则使用默认环境（第一个创建的环境）
        env: 'dwy-tools-e6fkc',
        traceUser: true,
      })
    }

    // 全局属性
    this.globalData = {
      playingMusicId: -1,
      openID: -1
    }

    this.getOpenId()


    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })

    // 集成GoEasy
    this.globalData.goEasy = new GoEasy({
      host: "hangzhou.goeasy.io", //应用所在的区域地址: 【hangzhou.goeasy.io | singapore.goeasy.io】
      appkey: "BC-e66aa3b98597431d8c64886ec81219ff", //替换为您的应用appkey
      onConnected: function () {
        console.log('连接成功！')
      },
      onDisconnected: function () {
        console.log('连接断开！')
      },
      onConnectFailed: function (error) {
        console.log('连接失败或错误！')
      }
    });
  },
  globalData: {
    userInfo: null
  },
  setGlobalToken(token) {
    wx.setStorageSync("token", token);
  },

  getGlobalToken: function () {
    return wx.getStorageSync("token");
  },
  setGlobalOpenId(openId) {
    wx.setStorageSync("openId", openId);
  },

  getGlobalOpenId: function () {
    return wx.getStorageSync("openId");
  },
  setGlobalWxUserInfo(wxUserInfo) {
    wx.setStorageSync("wxUserInfo", wxUserInfo);
  },

  getGlobalWxUserInfo: function () {
    return wx.getStorageSync("wxUserInfo");
  },
  // 前后台切换
  onShow(options) {
    // console.log('show options', options)
  },
  setPlayMusicId(musicId) {
    this.globalData.playingMusicId = musicId
  },
  getPlayingMusicId() {
    return this.globalData.playingMusicId
  },
  // 获取用户openID
  getOpenId() {
    wx.cloud.callFunction({
      name: 'login',
    }).then((res) => {
      const openId = res.result.openid
      // console.log(res.result.openid)
      this.globalData.openID = openId
      if (wx.getStorageSync(openId) == '') {
        wx.setStorageSync(openId, [])
      }
      if (wx.getStorageSync('openID') == '') {
        wx.setStorageSync('openID', openId)
      }
    })

  }
})